package IOTest;

import java.io.File;
import java.sql.Date;

class FileTest {
    public static void main(String[] args) {
        File file1 = new File("test.txt"); // 项目的根目录开始
        File file2 = new File("D:\\test.txt"); // 从盘符开始
        File file3 = new File("D:" + File.separator + "testDir");
        File file4 = new File(file3, "test.txt");

        System.out.println(file1);
        System.out.println(file2);
        System.out.println(file3);
        System.out.println(file4);

        System.out.println("返回绝对路径：" + file1.getAbsolutePath());
        System.out.println("返回构造器中传入的路径：" + file4.getPath());
        System.out.println("返回构造器中传入的路径的文件名：" + file1.getName());
        System.out.println("返回构造器中传入的路径的父目录：" + file4.getParent());
        System.out.println("返回文件的字节数：" + file1.length());
        System.out.println("返回文件最后一次修改的时间：" + new Date(file1.lastModified()));

        System.out.println("判断文件是否存在：" + file1.exists());
        System.out.println("判断文件是否是文件：" + file1.isFile());
        System.out.println("判断文件是否是文件夹：" + file1.isDirectory());
        System.out.println("判断文件是否可读：" + file1.canRead());
        System.out.println("判断文件是否可写：" + file1.canWrite());
        System.out.println("判断文件是否隐藏：" + file1.isHidden());

        // 打印当前目录下的所有文件和文件夹
        File RootDir = new File("./");
        String[] list = RootDir.list();
        for (String s : list) {
            System.out.println(s);
        }

        // 创建文件test.txt
        try {
            file1.createNewFile();
            System.out.println("创建文件成功");
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 文件重命名
        File file5 = new File("tests.txt");
        file1.renameTo(file5);

        // 创建文件夹testDir
        File file7 = new File("testDir");
        file7.mkdir();

        // 创建多级文件夹testDir1/testDir2
        File file8 = new File("testDir1" + File.separator + "testDir2");
        file8.mkdirs();

        // 删除文件
        file5.delete();

    }
}
